1. Field of the Invention
The invention relates to the field of integrated circuit design, and in particular, to a system and method for efficiently and effectively completing the engineering change order process for an integrated circuit design.
2. Related Art
Modern integrated circuit (IC) designs are typically performed using highly automated processes known generally as electronic design automation (EDA). By automating much of the IC development and analysis process, EDA tools enable the design of the highly complex chips used in modern electronic devices. For example, FIG. 1 shows a simplified representation of an exemplary digital ASIC design flow. At a high level, the process starts with the product idea (step E100) and is realized in an EDA software design process (step E110). When the design is finalized, it can be taped-out (event E140). After tape out, the fabrication process (step E150) and packaging and assembly processes (step E160) occur resulting, ultimately, in finished chips (result E170).
The EDA software design process (step E110) is actually composed of a number of steps E112-E130, shown in linear fashion for simplicity. In an actual ASIC design process, the particular design might have to go back through steps until certain tests are passed. Similarly, in any actual design process, these steps may occur in different orders and combinations. This description is therefore provided by way of context and general explanation rather than as a specific, or recommended, design flow for a particular ASIC.
A brief description of the component steps of the EDA software design process (step E110) will now be provided. During system design (step E112), the designers describe the functionality that they want to implement and can perform what-if planning to refine functionality, check costs, etc. Hardware-software architecture partitioning can occur at this stage. Exemplary EDA software products from Synopsys, Inc. that can be used at this step include Model Architect, Saber, System Studio, and DesignWare® products.
During logic design and functional verification (step E114), the VHDL or Verilog code for modules in the system is written and the design is checked for functional accuracy. More specifically, the design is checked to ensure that it produces the correct outputs. Exemplary EDA software products from Synopsys, Inc. that can be used at this step include VCS, VERA, DesignWare®, Magellan, Formality, ESP and LEDA products.
During synthesis and design for test (step E116), the VHDL/Verilog is translated to a netlist. The netlist can be optimized for the target technology. Additionally, the design and implementation of tests to permit checking of the finished chip occurs. Exemplary EDA software products from Synopsys, Inc. that can be used at this step include Design Compiler®, Physical Compiler, Test Compiler, Power Compiler, FPGA Compiler, Tetramax, and DesignWare® products.
During design planning (step E118), an overall floorplan for the chip is constructed and analyzed for timing and top-level routing. Exemplary EDA software products from Synopsys, Inc. that can be used at this step include Jupiter and Floorplan Compiler products.
During netlist verification (step E120), the netlist is checked for compliance with timing constraints and for correspondence with the VHDL/Verilog source code. Exemplary EDA software products from Synopsys, Inc. that can be used at this step include VCS, VERA, and Formality products.
During physical implementation (step E122), placement (positioning of circuit elements) and routing (connection of the same) is performed. Exemplary EDA software products from Synopsys, Inc. that can be used at this step include the Astro product.
During signoff extraction and timing analysis (step E124), the circuit function is verified at a transistor or gate level, which in turn permits what-if refinement. Exemplary EDA software products from Synopsys, Inc. that can be used at this step include Star RC/XT, Raphael, Aurora, and PrimeTime products.
During layout verification (step E126), various checking functions are performed to ensure correctness for manufacturing, electrical issues, lithographic issues, and circuitry. Exemplary EDA software products from Synopsys, Inc. that can be used at this step include the Hercules product.
During resolution enhancement (step E128), geometric manipulations of the layout are performed to improve manufacturability of the design. Exemplary EDA software products from Synopsys, Inc. that can be used at this step include the iN-Phase, Proteus, and AFGen products.
After resolution enhancement (step E128), another layout verification operation (step E129) can be performed to ensure that the geometric manipulations performed during step E128 have not introduced any unintended problems (e.g., mask manufacturing rule violations and layout patterns that could cause lithographic defects). An exemplary EDA software product from Synopsys, Inc. that can be used at this step is the SiVL product.
Finally, during mask data preparation (step E130), the “tape-out” data for production of masks for lithographic use to produce finished chips is performed. Mask data preparation is sometimes referred to as “mask synthesis”. Exemplary EDA software products from Synopsys, Inc. that can be used at this step include the CATS(R) family of products.
Once the EDA process reaches the tape-out phase (step E130), any changes to the design become extremely expensive, both in terms of dollar cost and production delays. Therefore, it is extremely important that once the design is finalized by the signoff operation (step E124), no additional design modifications be made (except for layout “clean up” modifications such as in steps E126 and E128). The signoff process therefore involves a detailed analysis of the IC design. Typically, this analysis is based on the timing requirements of the IC, although other performance-related aspects such as power consumption, ESD resistance, or noise can be evaluated during the signoff process.
Steps E122 and E124 in FIG. 1 are sometimes referred to as the “ECO (engineering change order) process”. Any violations, such as timing errors, that are detected during signoff (step E124) become the subject of ECOs that result in layout modifications by the physical implementation tool (step E122). FIG. 2 depicts the process flow between a physical implementation tool 222 and a signoff tool 224 for a conventional ECO process. During physical implementation (step E122), physical implementation tool 222 generates a design layout for an IC. This design layout is passed to signoff tool 224, which includes a signoff analysis module 224-A for performing a signoff analysis (step E124) on the design layout to check for proper device performance (e.g., proper circuit timing). Each violation (i.e., discrepancy between the design specification and the modeled performance of the design layout) that is detected by signoff analysis module 224-A is identified by the specific location of that violation. In some cases, the location of a violation is specified by indicating the “path” in which the violation occurs. A “path” in a layout refers to an electrical signal path (i.e., the series of interconnects and devices) between two nodes in the layout. Typically, a path includes multiple segments (i.e., connections between devices), although in certain situations, a path may consist of only one segment.
Signoff tool 224 passes the violation location data back to physical implementation tool 222, which attempts to correct the design layout to eliminate the violations and generate an updated design layout. The updated design layout is then re-analyzed by signoff tool 224, and any new or remaining violations are again passed to the implementation tool. The process continues looping in this manner until signoff tool 224 no longer detects any violations (i.e., timing closure is achieved), at which point the design layout can be submitted to downstream tools for final processing (e.g., steps E126-E130 in FIG. 1) and tape-out.
Note that physical implementation tool 222 includes an implementation analysis module 222-A. Implementation analysis module 222-A allows physical implementation tool to attempt to generate a design layout that meets the specified performance requirements. Typically, implementation analysis module 222-A allows implementation tool 222 to perform its own “what if” analyses to evaluate a range of different layouts to determine a layout design that best meets the performance specification. However, to enable efficient design layout generation, the algorithm used by implementation analysis module 222-A is less rigorous than the algorithm used by signoff analysis module 224-A in signoff tool 224. Specifically, the analytical models used in the implementation algorithm are less complex and less precise than the analytical models used in the signoff algorithm so that physical implementation can be performed in a relatively short period of time.
Furthermore, an implementation tool (222) will typically only simulate a small number of operating conditions for the design. For example, a mobile computing processor chip may have a number of different operating modes (e.g., sleep mode, standby mode, and active mode), with each mode having a different set of operating constraints. The chip may also need to operate over a range of temperatures that can also affect chip performance. Because the implementation process deals with an IC design that is undergoing many design changes, evaluating every single combination of operating conditions for each different design would be prohibitively time-consuming and expensive. Therefore, an implementation algorithm only evaluates a few operating condition combinations that are deemed to be representative of the universe of operating conditions. On the other hand, since the signoff tool (224) is ostensibly dealing with a firm design, the signoff algorithm can evaluate that design using a much more comprehensive set of operating conditions, and may therefore detect problems for combinations of operating conditions that were not considered by implementation tool 222. However, for this same reason, the runtime of signoff tool 224 is much greater than the runtime of implementation tool 222. For example, an implementation analysis performed on a design layout may take several hours to complete, while a signoff analysis performed on the same design layout might take several days to complete.
Thus, while the implementation algorithm is optimized for efficiency, the signoff algorithm is optimized for accuracy. The enhanced analytical fidelity of the signoff algorithm allows signoff tool 224 to detect violations in the design layouts generated by implementation tool 222 (i.e., violations that were not detected by implementation analysis module 222-A). Signoff tool 224 therefore prevents those violations from propagating any further downstream, where corrections become much more expensive and difficult. Unfortunately, even though signoff tool 224 identifies the violations by location/path, implementation tool 222 cannot effectively address violations identified in such a manner, since implementation analysis module 222-A was unable to detect those violations in the first place. Therefore, user inputs (e.g., ECOs) are typically required to evaluate the violations and suggest possible solutions that guide implementation tool 222 in making modifications to the design layout. However, because a user cannot be expected to generate ideal solutions for the complex circuit design, the ECO process typically loops back and forth between signoff tool 224 and physical implementation tool 222 (i.e., between steps E224 and E222 in FIG. 1) many times, which can significantly increase the overall design time for the IC.
Accordingly, it is desirable to provide a system and method for minimizing the number of cycles required for the ECO process, while still detecting and correcting violations detected by the signoff analysis.